﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>StrReplace - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The StrReplace function replaces the specified substring with a new string." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>StrReplace</h1>
<p>用新字符串替换指定的子字符串.</p>
<pre class="Syntax">ReplacedStr := <span class="func">StrReplace</span>(Haystack, Needle <span class="optional">, ReplaceText, CaseSense, OutputVarCount, Limit</span>)</pre>

<h2 id="Parameters">参数</h2>
<dl>

  <dt>Haystack</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>内容被搜索和替换的字符串.</p>
  </dd>

  <dt>Needle</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>要搜索的字符串.</p>
  </dd>

  <dt>ReplaceText</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>替换 <em>Needle</em> 的文本. 如果省略或为空, 那么 <em>Needle</em> 会被替换为空. 换句话说, 它将在返回值中被省略.</p>
  </dd>

  <dt>CaseSense</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a>或<a href="../Concepts.htm#strings">字符串</a></p>
    <p>下列值之一(如果省略, 默认为 0):</p>
    <p><code>"On"</code> 或 <code>1</code> (<code>True</code>): 搜索区分大小写.</p>
    <p><code>"Off"</code> 或 <code>0</code> (<code>False</code>): 字母 A-Z 被视为与其小写字母相同.</p>
    <p><code>"Locale"</code>: 根据当前用户的区域设置规则, 搜索是不区分大小写的. 例如, 在大多数英语及西欧地区, 不仅将 A-Z 视为等同于它们的小写形式, 同时也将非-ASCII 字母(如 Ä 和 Ü) 视为等同的. 根据被比较字符串的性质, <em>Locale</em> 比 <em>Off</em> 慢 1 到 8 倍.</p>
  </dd>

  <dt>OutputVarCount</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>未加引号的变量引用, 其中储存了要进行替换的数量(没有则为 0).</p>
  </dd>

  <dt>Limit</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>如果省略 <em>Limit</em>, 则默认为 -1, 它将替换 <em>Haystack</em> 中找到的 <strong>所有</strong> 模式. 否则, 请指定允许的最大替换数量. <em>Haystack</em> 最后一个替换对象右边的内容将保持不变.</p>
  </dd>

</dl>

<h2 id="Return_Value">返回值</h2>
<p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
<p>此函数返回指定字符串的替换版本.</p>

<h2 id="Remarks">备注</h2>
<p>内置变量 <a href="../Variables.htm">A_Space</a> 和 <a href="../Variables.htm">A_Tab</a> 分别包含了单个空格和单个制表符. 当在 <em>Needle</em> 的开头或结尾或单独搜索空格和制表符时, 这很有用.</p>

<h2 id="Related">相关</h2>
<p><a href="RegExReplace.htm">RegExReplace</a>, <a href="InStr.htm">InStr</a>, <a href="SubStr.htm">SubStr</a>, <a href="StrLen.htm">StrLen</a>, <a href="StrLower.htm">StrLower</a>, <a href="StrLower.htm">StrUpper</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExClipboard">
<p><a class="ex_number" href="#ExClipboard"></a> 移除剪贴板中所有的 CR+LF.</p>
<pre>A_Clipboard := StrReplace(A_Clipboard, "`r`n")</pre>
</div>

<div class="ex" id="ExVar">
<p><a class="ex_number" href="#ExVar"></a> 用加号替换所有空格.</p>
<pre>NewStr := StrReplace(OldStr, A_Space, "+")</pre>
</div>

<div class="ex" id="ExRemoveBlankLines">
<p><a class="ex_number" href="#ExRemoveBlankLines"></a> 移除变量文本中所有空行.</p>
<pre>Loop
{
    MyString := StrReplace(MyString, "`r`n`r`n", "`r`n",, &amp;Count)
    if (Count = 0)  <em>; 不再需要更多的替换.</em>
        break
}</pre>
</div>

</body>
</html>